package day01;

import org.junit.Test;

import java.sql.*;

public class JdbcDemo01 {
    //jdbc连接步骤
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        /*获取数据库连接对象 Connection
          连接数据库相关参数:
            参数1:连接数据库的url地址
                连接的方式:
                    jdbc:mysql://127.0.0.1:3306/库名
                    jdbc:mysql://localhost:3306/库名
                    jdbc:mysql:///库名
            参数2:连接数据库的账号
            参数3:连接数据库的密码
         */
        //?后的内容在出现时区异常情况下需要添加
        Connection root = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/dalwin_learn?serverTimezone=UTC",
                "root",
                "123456");
        System.out.println(root);
        //获取执行sql语句的对象 statement
        Statement sta = root.createStatement();
        //定义sql语句
        String sql = "create table jdbc_test(id int primary key,name varchar(20))";
        String sql_dql = "select * from emp";
        //执行sql，接收返回结果 -> 该结果为DQL语句返回的查询结果，其他情况均为false
        boolean execute = sta.execute(sql);
        System.out.println(execute);    //false，因为执行的是DDL构建表
        boolean exe_dql = sta.execute(sql_dql);
        System.out.println(exe_dql);    //true，因为执行的是DQL查询语句，返回查询结果
        //处理结果集 - 暂时没有：只有DQL语句有
        //释放资源 - 先创建的后关闭
        sta.close();
        root.close();
    }
    @Test //处理sql语句的方法
    public void sqlMethod() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection root = DriverManager.getConnection(
                "jdbc:mysql:///dalwin_learn?serverTimezone=UTC",
                "root",
                "003319");
        Statement sta = root.createStatement();
        //DDL
        //drop table jdbc_test
        String sql_ddl = "create table jdbc_test(id int primary key,name varchar(20))";
        boolean ex1 = sta.execute(sql_ddl);
        System.out.println(ex1);
        //DML
        String sql_dml = "insert into dept_copy values(50,'ZZXX','HANGZHOU')";
        boolean ex2 = sta.execute(sql_dml);
        System.out.println(ex2);
        //DQL
        String sql_dql = "select * from dept_copy";
        ResultSet rs = sta.executeQuery(sql_dql);
        while (rs.next()){
            int id = rs.getInt(1);
            String name = rs.getString(2);
            String loc = rs.getString(3);
            System.out.println(id + " : " + name + " : " + loc);
        }
    }
}
